/* 
文章管理路由的处理函数
*/
const path = require("path");
const db = require("../db/index");
const { query } = require("express");
// 1、发布新文章
/* 
1、解析前端发过来的表单数据，配一个multer中间件来解析multipart/formdata数据
2、验证表单数据是否合法，手动对file格式数据解析验证判断
3、实现发布文章的功能
*/
exports.addArticle = (req, res) => {
  // console.log(req.file); // 文件类型的数据
  // 对formdata数据进行校验
  if (!req.file || req.file.fieldname !== "cover_img")
    return res.cc("文章封面是必选参数！");
  // 整理要插入数据库的文章信息对象
  const articleInfo = {
    // title cate_id content state
    ...req.body,
    // cover_img
    cover_img: path.join("/uploads", req.file.filename),
    // pub_date 文章发布时间
    pub_date: new Date(),
    author_id: req.user.id,
  };
  // 定义添加sql语句
  const sql = `insert into ev_articles set ?`;
  // 执行sql语句
  db.query(sql, articleInfo, (err, result) => {
    if (err) return res.cc(err);

    if (result.affectedRows !== 1) return res.cc("发布文章失败！");

    // 发布文章成功
    res.cc("发布文章成功", 0);
  });
};
